package com.tronsis.distribution.biz;

import android.app.Activity;

import com.tronsis.distribution.bean.ScanDeliveryReq;
import com.tronsis.library.http.UICallBack;

import java.util.List;


/**
 *
 */
public interface OrderBiz {
    /**
     * 列出申请进货
     *
     * @param activity
     * @param page
     * @param size
     * @param state    进货状态[PAY(待付款), VERIFY(待审核), FINISH(已完成), REJECT(拒绝)]
     * @param callBack
     * @throws Exception
     */
    void getAskBuyList(Activity activity, int page, int size, String state, UICallBack callBack) throws Exception;

    /**
     * 通过并转移进货
     *
     * @param activity
     * @param buyId
     * @param callBack
     * @throws Exception
     */
    void askBuyPass(Activity activity, String buyId, UICallBack callBack) throws Exception;


    /**
     * 拒绝进货
     *
     * @param activity
     * @param buyId
     * @param refundFid
     * @param callBack
     * @throws Exception
     */
    void askBuyReject(Activity activity, String buyId, String refundFid, UICallBack callBack) throws Exception;


    /**
     * 列出我的进货
     *
     * @param activity
     * @param page
     * @param size
     * @param state
     * @param callBack
     * @throws Exception
     */
    void getMyBuyList(Activity activity, int page, int size, String state, UICallBack callBack) throws Exception;

    /**
     * 我的进货详情
     *
     * @param activity
     * @param buyId
     * @param callBack
     * @throws Exception
     */
    void getMyBuyDetail(Activity activity, String buyId, UICallBack callBack) throws Exception;


    /**
     * 删除进货
     *
     * @param activity
     * @param buyId
     * @param callBack
     * @throws Exception
     */
    void deleteMyBuy(Activity activity, String buyId, UICallBack callBack) throws Exception;

    /**
     * 支付进货
     *
     * @param activity
     * @param buyId
     * @param payeeId
     * @param paymentFid
     * @param points
     * @param callBack
     * @throws Exception
     */
    void buyPay(Activity activity, String buyId, String payeeId, String paymentFid, String points, UICallBack callBack) throws Exception;


    /**
     * 获取我的优惠券
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void getCouponList(Activity activity, UICallBack callBack) throws Exception;

    /**
     * 使用优惠券
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void useCoupon(Activity activity, UICallBack callBack) throws Exception;

    /**
     * 列出我的发货
     *
     * @param activity
     * @param page
     * @param size
     * @param state
     * @param callBack
     * @throws Exception
     */
    void getDeliveryList(Activity activity, int page, int size, String state, UICallBack callBack) throws Exception;

    /**
     * 发货详情
     *
     * @param activity
     * @param deliveryId
     * @param callBack
     * @throws Exception
     */
    void getDeliveryDetail(Activity activity, String deliveryId, UICallBack callBack) throws Exception;

    /**
     * 添加产品扫码
     *
     * @param activity
     * @param scanDeliveryReq
     * @param callBack
     * @throws Exception
     */
    void qrScanDelivery(Activity activity, ScanDeliveryReq scanDeliveryReq, UICallBack callBack) throws Exception;

    /**
     * 列出我的库存
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void getMyStockList(Activity activity, int page, int size, UICallBack callBack) throws Exception;

    /**
     * 申请库存发货
     *
     * @param activity
     * @param addrId
     * @param list
     * @param callBack
     * @throws Exception
     */
    void applyDelivery(Activity activity, String addrId, List list, UICallBack callBack) throws Exception;

    /**
     * 我的库存日志
     *
     * @param activity
     * @param page
     * @param size
     * @param callBack
     * @throws Exception
     */
    void getStockLog(Activity activity, int page, int size, UICallBack callBack) throws Exception;

    /**
     * 计算库存总价
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void getStockTotalPrice(Activity activity, final UICallBack callBack) throws Exception;


    /**
     * 微信统一下单
     *
     * @param activity
     * @param addrId
     * @param buyId
     * @param points
     * @param callBack
     * @throws Exception
     */
    void wxPay(Activity activity,String addrId , String buyId, String points, final UICallBack callBack) throws Exception;

    /**
     * 微信回调方法
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void wxNotify(Activity activity, final UICallBack callBack) throws Exception;

    /**
     * 查询订单状态
     *
     * @param activity
     * @param buyId
     * @param callBack
     * @throws Exception
     */
    void queryOrder(Activity activity, String buyId, final UICallBack callBack) throws Exception;

    /**
     * 列出下级库存
     *
     * @param activity
     * @param callBack
     * @param id
     * @throws Exception
     */
    void getLowerStockList(Activity activity, String id, UICallBack callBack) throws Exception;

    /**
     * 获取下级库存利润差价
     *
     * @param activity
     * @param callBack
     * @throws Exception
     */
    void getProfit(Activity activity, UICallBack callBack) throws Exception;

}
